package com.lihepeng.leecode.chart;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 图的广度优先遍历
 */
public class GraphBFS {
    public StringBuffer resultBuffer = new StringBuffer();

    // 深度优先搜索
    public void searchDFS(GraphNode<Integer> rootNode) {
        if (rootNode == null) {
            return;
        }
        // append Node
        if (resultBuffer.length() > 0) {
            resultBuffer.append(">");
        }
        // 从临近的一个点开始
        resultBuffer.append(rootNode.data);
        rootNode.visited = true;

        rootNode.neighborList.forEach(neighborNode -> {
            if (!neighborNode.visited) {
                searchDFS(neighborNode);
            }
        });
    }

    // 广度优先遍历
    public void searchBFS(GraphNode<Integer> rootNode) {
        // 使用队列接口
        Queue<Integer> queue = new LinkedList<>();

    }
}
